/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package DB;

/**
 *
 * @author DE SILVA
 */



import java.sql.*;


public class Database {

  protected static final String DRIVER_NAME="com.mysql.jdbc.Driver";
    /**
     * URL de la base de données
     */
    protected static final String URL="jdbc:mysql://localhost:3306/santeBD";
    /**
     * utilisateur de la Database
     */
    protected static final String USER="root";
    /**
     * Mot de passe de l'utilisateur
     */
    protected static final String PASSWORD="";



  static {
    // Chargement du pilote
    // Ne doit avoir lieu qu'une seule fois
    try {
      Class.forName(DRIVER_NAME).newInstance();
      System.out.println("*** Driver loaded.");
    }
    catch (ClassNotFoundException e) {
      System.err.println("*** ERROR: Driver " + DRIVER_NAME + " not found");
    }
    catch (InstantiationException e) {
      System.err.println("*** ERROR: Impossible to create an instance of " + DRIVER_NAME);
      System.err.println(e.getMessage());
    }
    catch (IllegalAccessException e) {
      System.err.println("*** ERROR: Impossible to create an instance of " + DRIVER_NAME);
      System.err.println(e.getMessage());
    }
  }

  /** Fournit une connexion à la base de données.
   * Ne fait pas appel à un pool de connexion, mâme si cela est envisageable plus tard
   * (ne changerait rien à l'appel de la méthode)
   * @throws java.sql.SQLException
   */
  public static Connection getConnection() throws SQLException {
      System.out.println("CONNEXION A LA BASE DE DONNEE POSTGRES");
    return DriverManager.getConnection(URL, USER, PASSWORD);
  }

  /** Exécuter un fichier SQL sur la base de données. Les instructions
   * SQL y sont toutes terminées par un point virgule. Les lignes
   * vides et les espaces après les points virgules sont ignorés.
   * @param path chemin du fichier SQL
   * @throws SQLException
   * @throws IOException
   */


  /** Ferme une connexion, si elle est non null.
   * Si une exception SQLException est levée, ne la propage pas.
   */
  public static void close(final Connection cx) throws SQLException {
    if (cx != null) {
      try {
        cx.close();
      }
      catch (SQLException exc) {
        System.err.println("Impossible to close connection");
        System.err.println(exc.getMessage());
      }
    }
  }

  /** Ferme une requête SQL, si elle est non null.
   * Si une exception SQLException est levée, ne la propage pas.
   */
  public static void close(final Statement st) throws SQLException {
    if (st != null) {
      try {
        st.close();
      }
      catch (SQLException exc) {
        System.err.println("Impossible to close statement");
        System.err.println(exc.getMessage());
      }
    }
  }

  /** Ferme un ResultSet, s'il est non null.
   * Si une exception SQLException est levée, ne la propage pas.
   */
  public static void close(final ResultSet rs) throws SQLException {
    if (rs != null) {
      try {
        rs.close();
      }
      catch (SQLException exc) {
        System.err.println("Impossible to close resultSet");
        System.err.println(exc.getMessage());
      }
    }
  }
}
